package com.qidianit.mes.pro.service;

import com.github.pagehelper.PageInfo;
import com.qidianit.mes.pojo.Result;
import com.qidianit.mes.pojo.pro.ProcessStep;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 工序步骤服务接口
 */
public interface ProcessStepService {

    /**
     * 根据条件查询工序步骤列表，支持分页查询
     * @param processStep 工序步骤查询条件
     * @param pageNum 页码
     * @param pageSize 每页条数
     * @return 分页查询结果
     */
    Result<PageInfo<ProcessStep>> selectList(ProcessStep processStep, int pageNum, int pageSize);

    /**
     * 根据ID查询工序步骤详情
     * @param id 工序步骤ID
     * @return 工序步骤查询结果
     */
    Result<ProcessStep> selectById(Long id);

    /**
     * 根据工序ID查询其包含的所有步骤
     * @param processId 工序ID
     * @return 工序步骤列表查询结果
     */
    Result<List<ProcessStep>> selectByProcessId(Long processId);

    /**
     * 新增工序步骤
     * @param processStep 工序步骤信息
     * @return 新增操作结果
     */
    Result saveStep(ProcessStep processStep);

    /**
     * 根据ID编辑工序步骤信息
     * @param processStep 工序步骤信息
     * @return 编辑操作结果
     */
    Result updateById(ProcessStep processStep);

    /**
     * 根据ID删除工序步骤信息，为逻辑删除（将is_deleted修改为1）
     * @param id 工序步骤ID
     * @return 删除操作结果
     */
    Result deleteById(Long id);

    /**
     * 根据ID数组批量删除工序步骤信息，为逻辑删除（将is_deleted修改为1）
     * @param ids 工序步骤ID数组
     * @return 批量删除操作结果
     */
    Result batchDelete(@Param("ids") Long[] ids);
}
